package com.niit.session18;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeSet;

public class Activity {
	/**
	 * 有一个List集合，其中元素是String类型的整数字符串，需要对其进行以下操作：
1、将集合中的每个字符串转换为整数并求和，输出结果。
2、将集合中的元素去重并按照字典序从小到大排序，输出结果。
3、统计集合中每个字符串的出现次数，并输出出现次数最多的字符串以及出现次数。
要求使用Java集合框架中的API完成以上操作。
	 */
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("1");
		list.add("1");
		list.add("5");
		list.add("3");
//		将集合中的每个字符串转换为整数并求和，输出结果。
		int sum = 0;
//		遍历
		for (String string : list) {
//			String转int
			int parseInt = Integer.parseInt(string);
			sum+=parseInt;
		}
		System.out.println(sum);
//		将集合中的元素去重并按照字典序从小到大排序，输出结果。
//		去重：Set
//		排序:Tree
		TreeSet<String> set = new TreeSet<String>(list);
		System.out.println(set);
//		统计集合中每个字符串的出现次数，并输出出现次数最多的字符串以及出现次数。
//		"1"--3
//		"2"--1
//		"3"--1
//		键值对
//		定义一个HashMap用来保存每个字符串出现的次数
		HashMap<String, Integer> hashMap = new  HashMap<String, Integer>();
//		遍历list
		for (String string : list) {
//			判断HashMap是否装有每个元素
			if(hashMap.containsKey(string)) {
//				如果有就让这个元素出现的次数加1
				Integer count = hashMap.get(string);
				hashMap.put(string, ++count);
			}else {
//				否则就把这个没出现的元素添加进去，出现的次数是1
				hashMap.put(string, 1);
			}
		}
		for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {
			System.out.println(entry.getKey()+"---"+entry.getValue());
		}
		
	}

}
